package everydayone.uniquePaths;
/**
 * @date 2020/07/07
 * @author 王光浩
 * @thinking 使用递归解决
 * @analysis 时间复杂度O（n^2），空间复杂度O（n^2）
 * @result 超出时间复杂度
 */
public class MyMethodOne {
	private int maxX = 0;
	private int maxY = 0;
	public int uniquePaths(int m, int n) {
		if (m <= 0 || n <= 0)
			return -1;
		this.maxX = m;
		this.maxY = n;
		return helper(0, 0);
    }
	/**
	 * 用于递归的获取总路径数
	 * @param x
	 * @param y
	 * @return
	 */
	private int helper(int x, int y) {
		if (x >= this.maxX || y >= this.maxY)
			return 0;
		if (x == (this.maxX -1) && y == (this.maxY - 1) )
			return 1;
		return helper(x - 1, y) + helper(x, y -1);
	}
}
